package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 消息对象 chat_message
 * 
 * @author ruoyi
 * @date 2025-08-30
 */
public class ChatMessage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 消息ID */
    private Long messageId;

    /** 发送者ID */
    @Excel(name = "发送者ID")
    private Long senderId;

    /** 接收者ID */
    @Excel(name = "接收者ID")
    private Long receiverId;

    /** 聊天类型 */
    @Excel(name = "聊天类型")
    private String chatType;

    /** 内容类型 */
    @Excel(name = "内容类型")
    private String contentType;

    /** 消息内容 */
    private String content;

    /** 文件URL */
    private String fileUrl;

    /** 文件大小 */
    private Long fileSize;

    /** 是否撤回 */
    @Excel(name = "是否撤回")
    private String isRecall;

    /** 发送时间 */
    private Date sendTime;

    public void setMessageId(Long messageId) 
    {
        this.messageId = messageId;
    }

    public Long getMessageId() 
    {
        return messageId;
    }

    public void setSenderId(Long senderId) 
    {
        this.senderId = senderId;
    }

    public Long getSenderId() 
    {
        return senderId;
    }

    public void setReceiverId(Long receiverId) 
    {
        this.receiverId = receiverId;
    }

    public Long getReceiverId() 
    {
        return receiverId;
    }

    public void setChatType(String chatType) 
    {
        this.chatType = chatType;
    }

    public String getChatType() 
    {
        return chatType;
    }

    public void setContentType(String contentType) 
    {
        this.contentType = contentType;
    }

    public String getContentType() 
    {
        return contentType;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }

    public void setFileSize(Long fileSize) 
    {
        this.fileSize = fileSize;
    }

    public Long getFileSize() 
    {
        return fileSize;
    }

    public void setIsRecall(String isRecall) 
    {
        this.isRecall = isRecall;
    }

    public String getIsRecall() 
    {
        return isRecall;
    }

    public void setSendTime(Date sendTime) 
    {
        this.sendTime = sendTime;
    }

    public Date getSendTime() 
    {
        return sendTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("messageId", getMessageId())
            .append("senderId", getSenderId())
            .append("receiverId", getReceiverId())
            .append("chatType", getChatType())
            .append("contentType", getContentType())
            .append("content", getContent())
            .append("fileUrl", getFileUrl())
            .append("fileSize", getFileSize())
            .append("isRecall", getIsRecall())
            .append("sendTime", getSendTime())
            .append("createTime", getCreateTime())
            .toString();
    }
}
